package it.controllocredito.backend.persistence.bean;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

import android.util.Log;

public class Configuration {

    private static final String log_class_name = "Configuration";
    
    private long configurationId;
    private String nome;
    private Timestamp dataCreazione;
    private String autore;
    private String versione;
    private ArrayList<Soglia> soglie;

    public long getConfigurationId() {
	return configurationId;
    }

    public void setConfigurationId(long configurationId) {
	this.configurationId = configurationId;
    }

    public String getNome() {
	return nome;
    }

    public void setNome(String nome) {
	this.nome = nome;
    }

    public Timestamp getDataCreazione() {
	return dataCreazione;
    }

    public void setDataCreazione(Timestamp dataCreazione) {
	this.dataCreazione = dataCreazione;
    }
    
    public void setDataCreazioneString(String dataCreazioneString) {
	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        java.util.Date parsed;
	try {
	    parsed = format.parse(dataCreazioneString);
	   this.dataCreazione = new Timestamp(parsed.getTime());
	} catch (ParseException e) {
	    Log.e(log_class_name, "ParseException per la data di creazione per la tabella Configuration. Error:"+e.getMessage());
	    e.printStackTrace();
	}
    }

    public String getAutore() {
	return autore;
    }

    public void setAutore(String autore) {
	this.autore = autore;
    }

    public String getVersione() {
	return versione;
    }

    public void setVersione(String versione) {
	this.versione = versione;
    }
        
    public ArrayList<Soglia> getSoglie() {
	if(soglie==null){
	    this.soglie = new ArrayList<Soglia>();
	}
        return soglie;
    }

    public void setSoglie(ArrayList<Soglia> soglie) {
        this.soglie = soglie;
    }

    public void addSoglia(Soglia soglia){
	this.getSoglie().add(soglia);
    }
    
    @Override
    public String toString(){
	String result = "Configurazione: "+this.nome+" (ID:"+this.configurationId+") v"+this.versione+" - Data creazione: "+this.dataCreazione+", Autore: "+this.autore+"; \n Soglie associate: \n";
	for(Soglia soglia : this.getSoglie()){
	    result = result.concat(" - "+ soglia.toString() + "\n");
	}
	return result;
    }

}